package org.japo.java.basics.main;

import java.util.Locale;
import java.util.Scanner;

public class EntradaBasica {

    public static void main(String[] args) {
        // Objeto Scanner desde teclado
        Scanner sc = new Scanner(System.in);
        sc.useLocale(Locale.ENGLISH);

        // Introduce un número entero y lo muestra
        System.out.print("Introducir entero ....: ");
        try {
            // Entrada por teclado
            int entero = sc.nextInt();

            // Mostrar valor introducido
            System.out.printf("Entero introducido ...: %d\n", entero);
        } catch (Exception e) {
            // Mensaje de error
            System.out.println("Error en la entrada de datos.");

            // Muestra la excepción
            System.out.println(e);
        }

        // Vacia el buffer de teclado
        sc.nextLine();

        // Introduce un número real y lo muestra
        System.out.print("\nIntroducir real ......: ");
        try {
            // Entrada por teclado
            double real = sc.nextDouble();

            // Mostrar valor introducido
            System.out.printf(Locale.ENGLISH,
                    "Real introducido .....: %.2f\n", real);
        } catch (Exception e) {
            // Mensaje de error
            System.out.println("Error en la entrada de datos.");

            // Muestra la excepción
            System.out.println(e);
        }

        // Vacia el buffer de teclado
        sc.nextLine();

        // Introduce un texto y lo muestra
        System.out.print("\nIntroducir texto .....: ");
        try {
            // Entrada por teclado
            String texto = sc.nextLine();

            // Mostrar valor introducido
            System.out.printf("Texto introducido ....: %s\n", texto);
        } catch (Exception e) {
            // Mensaje de error
            System.out.println("Error en la entrada de datos.");

            // Muestra la excepción
            System.out.println(e);
        }

        // Introduce un carácter y lo muestra
        System.out.print("\nIntroducir carácter ..: ");
        try {
            // Entrada por teclado
            char caracter = sc.nextLine().charAt(0);

            // Mostrar valor introducido
            System.out.printf("Carácter introducido .: %c\n", caracter);
        } catch (Exception e) {
            // Mensaje de error
            System.out.println("Error en la entrada de datos.");

            // Muestra la excepción
            System.out.println(e);
        }

        // Introduce un valor lógico y lo muestra
        System.out.print("\nIntroducir lógico ....: ");
        try {
            // Entrada por teclado
            boolean logico = sc.nextBoolean();

            // Mostrar valor introducido
            System.out.println("Lógico introducido ...: " + logico);
        } catch (Exception e) {
            // Mensaje de error
            System.out.println("Error en la entrada de datos.");

            // Muestra la excepción
            System.out.println(e);
        }

        // Vacia el buffer de teclado
        sc.nextLine();
    }
}
